/**
 * 
 */
$.namespace('facility');

// 1.初始化&&声明一些函数响应按钮的操作
facility = function() {
	var urlPath = '';

	return {
		init : function() {
			EasyUIInit.initControls([ facility.config.facility,
					facility.config.dialog, facility.config.mapdialog,
					facility.config.searchDlg ]);

			$('#fileUploadfm').ajaxForm({
				url : ctxRest + '/sys/file/upload',
				type : 'POST',
				resetForm : true,
				beforeSend : function() {
					progressLoad();
				},
				success : function(data) {
					progressClose();
					facility.setImage(data);
					// $('#image').val(data);
					$('#fileUploadDlg').dialog('close');
					// var t = (new Date()).getTime();
					// $('#imgFile')
					// .html(
					// '<span url="'
					// + data
					// + '"><img src="'
					// + ctxRest
					// + '/sys/file/get?path='
					// + data
					// + '" style="width:100px;height:100px;" /><span
					// style="position:relative;top:12px;left:-60px;"><a
					// href="javascript:void(0)"
					// onClick="$(this).parent().parent().remove();$(\'#image\').val();">删除</a></span></span>');
				}
			});
		},

		setImage : function(imgUrl) {
			if (imgUrl == undefined || imgUrl == null)
				imgUrl = '';

			$('#image').val(imgUrl);

			if (imgUrl != '')
				imgUrl = '<span><img src="'
						+ ctxRest
						+ '/sys/file/get?path='
						+ imgUrl
						+ '" style="width:120px;height:90px;" /><span style="position:relative;top:12px;left:-60px;"><a href="javascript:void(0)" onClick="facility.setImage();">删除</a></span></span>';
			$('#imgFile').html(imgUrl);

		},
		showFileUploadForm : function() {
			$('#fileUploadDlg').dialog('open');
		},
		showForm : function() {
			$('#fmDlg').show().dialog('open');
			$('#fm').form('clear');
			urlPath = ctxRest + '/gcb/facility/create';

			// 设置广场combobox默认首选项
			// var dataGrid = $('#gridID').combobox('getData');
			// $('#gridID').combobox('select', dataGrid[1].value);

			// 设置设施类型combobox默认首选项
			// var dataType = $('#type').combobox('getData');
			// $('#type').combobox('select', dataType[0].value);

			// 设置设施数量默认值为1
			$('#quantity').numberspinner('setValue', 1);
		},

		showEditForm : function() {
			var row = $('#facility').datagrid('getSelected');
			if (!row) {
				$.messager.alert('提示', '请选择要修改的数据.', 'info');
				return;
			}

			urlPath = ctxRest + '/gcb/facility/update';
			$('#fmDlg').show().dialog('open');
			$('#fm').form('load', row);

			facility.setImage(row.image);
		},

		getFormData : function() {

			var obj;
			var form = $('#fm');
			if (form.form('validate')) {
				obj = $.serializeObject(form);
			}
			return obj;
		},

		saveOrupdate : function() {
			var obj = facility.getFormData();
			console.log(obj);

			if (obj) {
				$.ajax({
					type : 'POST',
					url : urlPath,
					data : JSON.stringify(obj),
					contentType : 'application/json;charset=UTF-8',
					success : function(result) {
						if (result && result.errcode == 0) {
							$('#fmDlg').dialog('close');
							$('#facility').datagrid('reload');
						} else if (result.errcode == 1) {
							$.messager.alert('提示', result.msg, 'info');
						}
					}
				})
			}
		},

		remove : function() {
			var row = $('#facility').datagrid('getSelected');
			if (!row) {
				$.messager.alert('提示', '请选择要删除的数据.', 'info');
				return;
			}
			$.messager.confirm('提示', '您确定要删除?', function(flag) {
				if (flag) {

					$.ajax({
						type : 'GET',
						contentType : 'application/json;charset=UTF-8',
						url : ctxRest + '/gcb/facility/delete?id=' + row.id,
						success : function(result) {
							$('#facility').datagrid('reload');
						}
					});
				}
			});
		},

		showSearchForm : function(obj) {
			$('#searchDlg').dialog('open');
		},
		search : function(obj) {

			$('#facility').datagrid({
				queryParams : this.form2Json()
			});
			$('#searchDlg').dialog('close');
		},
		clearSearch : function() {
			$('#searchfm').form('clear');
		},
		form2Json : function(id) {

			var arr = $('#searchfm').serializeArray();
			var jsonStr = "";

			jsonStr += '{';
			for (var i = 0; i < arr.length; i++) {
				jsonStr += '"' + arr[i].name + '":"' + arr[i].value + '",';
			}
			jsonStr = jsonStr.substring(0, (jsonStr.length - 1));
			jsonStr += '}';

			var json = JSON.parse(jsonStr);
			return json;
		},

		// 设备位置选择窗口
		openMap : function() {

			$('#mapDlg').dialog('open');
			var point = $('#site').val();
			var id = $('#id').val();

			if (point == undefined || point == '') {
				var form = $('#fm');
				var obj = $.serializeObject(form);
				obj.pid = $('#regionID').combobox('getValue');

				var comData = $('#regionID').combobox('getData');

				for (var i = 0; i < comData.length; i++) {
					// comData[i].data;
					if (obj.pid == comData[i].id) {
						obj = comData[i];
					}
				}
				point = obj.center;
			}

			var iframe = document.getElementById('mapFrame');
			iframe.src = ctx
					+ '/page/map/map?load=parent.facility.getregionData&id='
					+ id + '&drawMode=POLYGON&pos=' + point + '&t='
					+ (new Date().getTime());// ?load=getTestData&edit=0&drawMode=POLYGON
			// var iframe = document.getElementById('mapFrame');
			// iframe.src = ctx + '/page/map/map?&id='
			// + id + '&pos=' + point + '&t=' + (new Date().getTime());//
			// ?load=getTestData&edit=0&drawMode=POLYGON
		},

		getregionData : function(id) {
			if (id == undefined)
				id = '';
			var ret = {
				editItemID : id,
				overlays : []
			};

			var form = $('#fm');
			var obj = $.serializeObject(form);
			obj.pid = $('#regionID').combobox('getValue');

			var comData = $('#regionID').combobox('getData');

			for (var i = 0; i < comData.length; i++) {
				// comData[i].data;
				if (obj.pid == comData[i].id) {
					obj = comData[i];
				}
			}

			// 绘制当前区域
			var overlay = {
				id : '',
				type : 'POLYGON',
				points : []
			};
			if (obj.region.length > 0)
				try {
					eval('overlay=' + obj.region);
				} catch (e) {
					;
				}
			overlay.id = obj.id;

			var center = obj.center;
			if (center.length > 0)
				overlay.center = center.split(',');
			overlay.text = obj.name;
			overlay.strokeWeight = obj.lineWidth;
			overlay.strokeColor = obj.lineColor;
			overlay.fillColor = obj.bgColor;
			ret.overlays[ret.overlays.length] = overlay;

			return ret;
		},

		handleSelect : function(record) {
			// console.log(type);
			$('#regionID').combobox('clear');
			switch (type) {
			default:
				// 这里可以手动通过ajax和js对象筛选数据
				var newData = $.ajax({
					type : 'POST',
					data : JSON.stringify(record),
					url : ctx + '/rest/gcb/grid/findRegionList',
					contentType : 'application/json;charset=UTF-8',
					success : function(result) {
						$('#regionID').combobox('loadData', result);
					}
				});
				break;
			}
		},

		// 更新某一个combobox的数据，比如年度改变，可以调用此方法重新加载 单位的数据
		reloadData : function(comboboxId, newData) {
			// 这里可以通过loadData将combobox的数据重新绑定了。
			$(comboboxId).combobox('loadData', newData);
		}

	}

}();

// 2.界面必要的空间,依附于facility匿名函数对象..,.config类似增加了一个对象的属性.
facility.config = {
	facility : {
		id : "facility",
		type : "easyui-datagrid",
		option : {
			// title : '广场设施列表',
			border : false,
			url : ctx + '/rest/gcb/facility/findList',
			contentType : 'application/json;charset=utf-8',
			idField : 'id',
			fitColumns : true,
			toolbar : "#toolbar",
			columns : [ [ {
				title : 'id',
				field : 'id',
				hidden : 'true',
				width : 50
			}, {
				title : '广场编号',
				field : 'gridID',
				hidden : 'true',
				width : 50
			}, {
				title : '区域编号',
				field : 'regionID',
				hidden : 'true',
				width : 50
			}, {
				title : '广场名称',
				field : 'gridName',
				width : 50
			}, {
				title : '区域名称',
				field : 'regionName',
				width : 50
			}, {
				title : '设施类型',
				field : 'type',
				hidden : 'true',
				width : 50
			}, {
				title : '设施编号',
				field : 'code',
				width : 50
			}, {
				title : '设施名称',
				field : 'name',
				width : 80
			}, {
				title : '设施功能',
				field : 'function',
				width : 80
			}, {
				title : '设施品牌',
				field : 'brand',
				width : 80
			}, {
				title : '设施型号',
				field : 'model',
				width : 80
			}, {
				title : '设施数量',
				field : 'quantity',
				width : 80
			}, {
				title : '状态',
				field : 'status',
				hidden : 'true',
				width : 30
			} ] ],

			toolbar : [ {
				text : '增加',
				iconCls : 'icon-add',
				handler : facility.showForm,
			}, '-', {
				text : '修改',
				iconCls : 'icon-edit',
				handler : facility.showEditForm,
			}, '-', {
				text : '删除',
				iconCls : 'icon-remove',
				handler : facility.remove,
			}, '-', {
				text : '查询',
				iconCls : 'icon-search',
				handler : facility.showSearchForm,
			} ],

			onDblClickRow : facility.showEditForm
		}
	},
	dialog : {
		id : 'fmDlg',
		type : 'easyui-dialog',
		style : 'padding:5px;',
		option : {
			title : '设施信息',
			width : 620,
			height : 420,
			closed : true,
			buttons : [ {
				text : '保  存',
				width : 60,
				height : 30,
				handler : facility.saveOrupdate
			}, {
				text : '关  闭',
				width : 60,
				height : 30,
				handler : function() {
					$('#fmDlg').dialog('close');
				}
			} ]
		},
		controls : [ {
			id : 'fm',
			type : 'form',
			isExternal : true,
			style : 'padding:5px;',
			layout : {
				captionWidth : 70,
				fieldWidth : 200,
				fieldHeight : 30,
				rowHeight : 38,
				columns : 2,
				controls : [
						{
							id : 'image',
							type : 'input',
							isExternal : true,
							attr : 'hidden=true',
							colspan : 0
						},
						{
							id : 'id',
							caption : '',
							type : 'input',
							isExternal : true,
							attr : 'hidden=true',
							colspan : 0
						},
						{
							id : 'site',
							caption : '',
							type : 'input',
							isExternal : true,
							attr : 'hidden=true',
							colspan : 0
						},
						{
							id : 'gridID',
							caption : '广场名称',
							type : 'easyui-combobox',
							option : {
								required : true,
								url : ctx + '/rest/gcb/grid/findList',
								method : 'post',
								textField : 'name',
								valueField : 'id',
								editable : false,
								onSelect : function(record) {
									facility.handleSelect(record);

								},
							}
						},
						{
							id : 'regionID',
							caption : '区域名称',
							type : 'easyui-combobox',
							option : {
								required : true,
								url : ctx + '/rest/gcb/grid/findRegionList',
								method : 'post',
								textField : 'name',
								valueField : 'id',
								editable : false,
								onLoadSuccess : function() {
									var data = $('#regionID').combobox(
											'getData');
									$('#regionID').combobox('select',
											data[0].id);
								}
							}
						},
						{
							id : 'type',
							caption : '设施类型',
							type : 'easyui-combobox',
							option : {
								valueField : 'code',
								textField : 'name',
								url : encodeURI(ctxRest
										+ '/sys/basecode/get?classCode=设施类型'),
								method : 'GET',
								required : true,
								editable : false,
								onLoadSuccess : function(data) {
									var data = $('#type').combobox('getData');//
									$('#type').combobox('select', data[0].id);
								}
							}
						}, {
							id : 'code',
							caption : '设施编号',
							type : 'easyui-textbox',
							option : {
								required : true,
								validType : [ 'length[0,20]' ],
								invalidMessage : '最大长度为20！'
							}
						}, {
							id : 'name',
							caption : '设施名称',
							type : 'easyui-textbox',
							option : {
								required : true,
								validType : [ 'length[0,50]' ],
								invalidMessage : '最大长度为50！'
							}
						}, {
							id : 'function',
							caption : '设施功能',
							type : 'easyui-textbox',
							option : {
								required : true,
								validType : [ 'length[0,120]' ],
								invalidMessage : '最大长度为120！'
							}
						}, {
							id : 'brand',
							caption : '设施品牌',
							type : 'easyui-textbox'
						}, {
							id : 'model',
							caption : '设施型号',
							type : 'easyui-textbox'
						}, {
							id : 'quantity',
							caption : '设施数量',
							type : 'easyui-numberspinner',
							option : {
								min : 1,
								max : 10,
							}
						}, {
							id : 'installTime',
							caption : '安装时间',
							// type : 'easyui-datebox',
							type : 'input',
							isExternal : true,
							attr : 'hidden=true',
							colspan : 0
						}, {
							id : 'recordID',
							caption : '最后维护记录',
							attr : 'hidden=true',
							type : 'input',
							colspan : 0
						}, {
							id : 'status',
							caption : '状态',
							type : 'input',
							attr : 'hidden=true',
							colspan : 0
						}, {
							id : 'site1',
							colspan : 1,
							captionVisible : true,
							caption : '设施位置',
							type : 'easyui-linkbutton',
							option : {
								required : true,
								editable : false,
								plain : false,
								text : '【位置设置】',
								onClick : function() {
									facility.openMap();
								}
							}
						}, {
							id : 'imgButtons',
							colspan : 2,
							caption : '设施图片',
							type : 'easyui-linkbutton',
							option : {
								plain : false,
								text : '上传照片',
								width : 60,
								onClick : function() {
									facility.showFileUploadForm();
								}
							}
						}, {

							id : 'imgFile',
							type : 'div',
							caption : '',
							colspan : 2,
							isExternal : true
						// ,style : 'width:120px;height:90px;background:#000'

						} ]
			}
		} ]
	},
	mapdialog : {
		id : 'mapDlg',
		type : 'easyui-dialog',
		style : 'padding:0px;',
		option : {
			title : '设置设施区域',
			modal : true,
			closed : true,
			maximizable : true,
			width : '99%',
			height : '99%',
			buttons : [
					{
						text : '取消',
						iconCls : 'icon-undo',
						handler : function() {
							$('#mapDlg').dialog('close');
						}
					},
					{
						text : '确定',
						iconCls : 'icon-ok',
						handler : function() {
							var point = document.getElementById("mapFrame").contentWindow.mapPosition
									.getPosition();

							$("#site").val(point);
							$('#mapDlg').dialog('close');
						}
					} ]
		},
		controls : [ {
			id : 'mapFrame',
			type : 'iframe',
			style : 'width:100%;height:100%;border:0',
			attr : " marginwidth='0' marginheight='0' scrolling='no'"
		} ]
	},
	searchDlg : {
		id : 'searchDlg',
		type : 'easyui-dialog',
		style : 'padding:5px;',
		option : {
			title : '查询',
			width : 650,
			height : 300,
			closed : true,
			modal : true,
			buttons : [ {
				text : '查询',
				iconCls : 'icon-ok',
				handler : function() {
					facility.search();
				}
			}, {
				text : '取消',
				iconCls : 'icon-cancel',
				handler : function() {
					$('#searchDlg').dialog('close');
				}
			}, {
				text : '重置',
				iconCls : 'icon-clear',
				handler : function() {
					facility.clearSearch();
				}
			} ]
		},
		controls : [ {
			id : 'searchfm',
			type : 'form',
			isExternal : true,
			layout : {
				captionWidth : 100,
				fieldWidth : 200,
				fieldHeight : 30,
				rowHeight : 40,
				columns : 2,
				controls : [
						{
							id : 'gridID',
							caption : '广场名称',
							type : 'easyui-combobox',
							option : {
								url : ctx + '/rest/gcb/grid/findList',
								method : 'post',
								textField : 'name',
								valueField : 'id',
								editable : false,
								onSelect : function(record) {
									facility.handleSelect(record);

								},
							}
						},
						{
							id : 'regionID',
							caption : '区域名称',
							type : 'easyui-combobox',
							option : {
								url : ctx + '/rest/gcb/grid/findRegionList',
								method : 'post',
								textField : 'name',
								valueField : 'id',
								editable : false,
								onLoadSuccess : function() {
									var data = $('#regionID').combobox(
											'getData');
									$('#regionID').combobox('select',
											data[0].id);
								}
							}
						},
						{
							id : 'type',
							caption : '设施类型',
							type : 'easyui-combobox',
							option : {
								url : encodeURI(ctx
										+ '/rest/sys/basecode/get?classCode=设施类型'),
								method : 'get',
								textField : 'name',
								valueField : 'code',
								editable : false,
								onLoadSuccess : function() {
									var data = $('#type').combobox('getData');
									$('#type').combobox('select', data[0].id);
								}
							}
						}, {
							id : 'code',
							caption : '设施编号',
							type : 'easyui-textbox',
							option : {
								validType : [ 'length[0,20]' ],
								invalidMessage : '最大长度为20！'
							}
						}, {
							id : 'name',
							caption : '设施名称',
							type : 'easyui-textbox',
							option : {
								validType : [ 'length[0,50]' ],
								invalidMessage : '最大长度为50！'
							}
						}, {
							id : 'function',
							caption : '设施功能',
							type : 'easyui-textbox',
							option : {
								validType : [ 'length[0,120]' ],
								invalidMessage : '最大长度为120！'
							}
						}, {
							id : 'brand',
							caption : '设施品牌',
							type : 'easyui-textbox'
						}, {
							id : 'model',
							caption : '设施型号',
							type : 'easyui-textbox'
						} ]
			}
		} ]
	},
};

// 初始化
$(function() {
	facility.init();
})
